package com.zero.clinic.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class PatientRegisterExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public PatientRegisterExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andPatientRegisterIdIsNull() {
            addCriterion("patient_register_id is null");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdIsNotNull() {
            addCriterion("patient_register_id is not null");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdEqualTo(Long value) {
            addCriterion("patient_register_id =", value, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdNotEqualTo(Long value) {
            addCriterion("patient_register_id <>", value, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdGreaterThan(Long value) {
            addCriterion("patient_register_id >", value, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdGreaterThanOrEqualTo(Long value) {
            addCriterion("patient_register_id >=", value, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdLessThan(Long value) {
            addCriterion("patient_register_id <", value, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdLessThanOrEqualTo(Long value) {
            addCriterion("patient_register_id <=", value, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdIn(List<Long> values) {
            addCriterion("patient_register_id in", values, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdNotIn(List<Long> values) {
            addCriterion("patient_register_id not in", values, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdBetween(Long value1, Long value2) {
            addCriterion("patient_register_id between", value1, value2, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdNotBetween(Long value1, Long value2) {
            addCriterion("patient_register_id not between", value1, value2, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientNameIsNull() {
            addCriterion("patient_name is null");
            return (Criteria) this;
        }

        public Criteria andPatientNameIsNotNull() {
            addCriterion("patient_name is not null");
            return (Criteria) this;
        }

        public Criteria andPatientNameEqualTo(String value) {
            addCriterion("patient_name =", value, "patientName");
            return (Criteria) this;
        }

        public Criteria andPatientNameNotEqualTo(String value) {
            addCriterion("patient_name <>", value, "patientName");
            return (Criteria) this;
        }

        public Criteria andPatientNameGreaterThan(String value) {
            addCriterion("patient_name >", value, "patientName");
            return (Criteria) this;
        }

        public Criteria andPatientNameGreaterThanOrEqualTo(String value) {
            addCriterion("patient_name >=", value, "patientName");
            return (Criteria) this;
        }

        public Criteria andPatientNameLessThan(String value) {
            addCriterion("patient_name <", value, "patientName");
            return (Criteria) this;
        }

        public Criteria andPatientNameLessThanOrEqualTo(String value) {
            addCriterion("patient_name <=", value, "patientName");
            return (Criteria) this;
        }

        public Criteria andPatientNameLike(String value) {
            addCriterion("patient_name like", value, "patientName");
            return (Criteria) this;
        }

        public Criteria andPatientNameNotLike(String value) {
            addCriterion("patient_name not like", value, "patientName");
            return (Criteria) this;
        }

        public Criteria andPatientNameIn(List<String> values) {
            addCriterion("patient_name in", values, "patientName");
            return (Criteria) this;
        }

        public Criteria andPatientNameNotIn(List<String> values) {
            addCriterion("patient_name not in", values, "patientName");
            return (Criteria) this;
        }

        public Criteria andPatientNameBetween(String value1, String value2) {
            addCriterion("patient_name between", value1, value2, "patientName");
            return (Criteria) this;
        }

        public Criteria andPatientNameNotBetween(String value1, String value2) {
            addCriterion("patient_name not between", value1, value2, "patientName");
            return (Criteria) this;
        }

        public Criteria andPatientGenderIsNull() {
            addCriterion("patient_gender is null");
            return (Criteria) this;
        }

        public Criteria andPatientGenderIsNotNull() {
            addCriterion("patient_gender is not null");
            return (Criteria) this;
        }

        public Criteria andPatientGenderEqualTo(Long value) {
            addCriterion("patient_gender =", value, "patientGender");
            return (Criteria) this;
        }

        public Criteria andPatientGenderNotEqualTo(Long value) {
            addCriterion("patient_gender <>", value, "patientGender");
            return (Criteria) this;
        }

        public Criteria andPatientGenderGreaterThan(Long value) {
            addCriterion("patient_gender >", value, "patientGender");
            return (Criteria) this;
        }

        public Criteria andPatientGenderGreaterThanOrEqualTo(Long value) {
            addCriterion("patient_gender >=", value, "patientGender");
            return (Criteria) this;
        }

        public Criteria andPatientGenderLessThan(Long value) {
            addCriterion("patient_gender <", value, "patientGender");
            return (Criteria) this;
        }

        public Criteria andPatientGenderLessThanOrEqualTo(Long value) {
            addCriterion("patient_gender <=", value, "patientGender");
            return (Criteria) this;
        }

        public Criteria andPatientGenderIn(List<Long> values) {
            addCriterion("patient_gender in", values, "patientGender");
            return (Criteria) this;
        }

        public Criteria andPatientGenderNotIn(List<Long> values) {
            addCriterion("patient_gender not in", values, "patientGender");
            return (Criteria) this;
        }

        public Criteria andPatientGenderBetween(Long value1, Long value2) {
            addCriterion("patient_gender between", value1, value2, "patientGender");
            return (Criteria) this;
        }

        public Criteria andPatientGenderNotBetween(Long value1, Long value2) {
            addCriterion("patient_gender not between", value1, value2, "patientGender");
            return (Criteria) this;
        }

        public Criteria andPatientBirthdayIsNull() {
            addCriterion("patient_birthday is null");
            return (Criteria) this;
        }

        public Criteria andPatientBirthdayIsNotNull() {
            addCriterion("patient_birthday is not null");
            return (Criteria) this;
        }

        public Criteria andPatientBirthdayEqualTo(Date value) {
            addCriterionForJDBCDate("patient_birthday =", value, "patientBirthday");
            return (Criteria) this;
        }

        public Criteria andPatientBirthdayNotEqualTo(Date value) {
            addCriterionForJDBCDate("patient_birthday <>", value, "patientBirthday");
            return (Criteria) this;
        }

        public Criteria andPatientBirthdayGreaterThan(Date value) {
            addCriterionForJDBCDate("patient_birthday >", value, "patientBirthday");
            return (Criteria) this;
        }

        public Criteria andPatientBirthdayGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("patient_birthday >=", value, "patientBirthday");
            return (Criteria) this;
        }

        public Criteria andPatientBirthdayLessThan(Date value) {
            addCriterionForJDBCDate("patient_birthday <", value, "patientBirthday");
            return (Criteria) this;
        }

        public Criteria andPatientBirthdayLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("patient_birthday <=", value, "patientBirthday");
            return (Criteria) this;
        }

        public Criteria andPatientBirthdayIn(List<Date> values) {
            addCriterionForJDBCDate("patient_birthday in", values, "patientBirthday");
            return (Criteria) this;
        }

        public Criteria andPatientBirthdayNotIn(List<Date> values) {
            addCriterionForJDBCDate("patient_birthday not in", values, "patientBirthday");
            return (Criteria) this;
        }

        public Criteria andPatientBirthdayBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("patient_birthday between", value1, value2, "patientBirthday");
            return (Criteria) this;
        }

        public Criteria andPatientBirthdayNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("patient_birthday not between", value1, value2, "patientBirthday");
            return (Criteria) this;
        }

        public Criteria andPatientIdCardIsNull() {
            addCriterion("patient_id_card is null");
            return (Criteria) this;
        }

        public Criteria andPatientIdCardIsNotNull() {
            addCriterion("patient_id_card is not null");
            return (Criteria) this;
        }

        public Criteria andPatientIdCardEqualTo(String value) {
            addCriterion("patient_id_card =", value, "patientIdCard");
            return (Criteria) this;
        }

        public Criteria andPatientIdCardNotEqualTo(String value) {
            addCriterion("patient_id_card <>", value, "patientIdCard");
            return (Criteria) this;
        }

        public Criteria andPatientIdCardGreaterThan(String value) {
            addCriterion("patient_id_card >", value, "patientIdCard");
            return (Criteria) this;
        }

        public Criteria andPatientIdCardGreaterThanOrEqualTo(String value) {
            addCriterion("patient_id_card >=", value, "patientIdCard");
            return (Criteria) this;
        }

        public Criteria andPatientIdCardLessThan(String value) {
            addCriterion("patient_id_card <", value, "patientIdCard");
            return (Criteria) this;
        }

        public Criteria andPatientIdCardLessThanOrEqualTo(String value) {
            addCriterion("patient_id_card <=", value, "patientIdCard");
            return (Criteria) this;
        }

        public Criteria andPatientIdCardLike(String value) {
            addCriterion("patient_id_card like", value, "patientIdCard");
            return (Criteria) this;
        }

        public Criteria andPatientIdCardNotLike(String value) {
            addCriterion("patient_id_card not like", value, "patientIdCard");
            return (Criteria) this;
        }

        public Criteria andPatientIdCardIn(List<String> values) {
            addCriterion("patient_id_card in", values, "patientIdCard");
            return (Criteria) this;
        }

        public Criteria andPatientIdCardNotIn(List<String> values) {
            addCriterion("patient_id_card not in", values, "patientIdCard");
            return (Criteria) this;
        }

        public Criteria andPatientIdCardBetween(String value1, String value2) {
            addCriterion("patient_id_card between", value1, value2, "patientIdCard");
            return (Criteria) this;
        }

        public Criteria andPatientIdCardNotBetween(String value1, String value2) {
            addCriterion("patient_id_card not between", value1, value2, "patientIdCard");
            return (Criteria) this;
        }

        public Criteria andPatientAddressIsNull() {
            addCriterion("patient_address is null");
            return (Criteria) this;
        }

        public Criteria andPatientAddressIsNotNull() {
            addCriterion("patient_address is not null");
            return (Criteria) this;
        }

        public Criteria andPatientAddressEqualTo(String value) {
            addCriterion("patient_address =", value, "patientAddress");
            return (Criteria) this;
        }

        public Criteria andPatientAddressNotEqualTo(String value) {
            addCriterion("patient_address <>", value, "patientAddress");
            return (Criteria) this;
        }

        public Criteria andPatientAddressGreaterThan(String value) {
            addCriterion("patient_address >", value, "patientAddress");
            return (Criteria) this;
        }

        public Criteria andPatientAddressGreaterThanOrEqualTo(String value) {
            addCriterion("patient_address >=", value, "patientAddress");
            return (Criteria) this;
        }

        public Criteria andPatientAddressLessThan(String value) {
            addCriterion("patient_address <", value, "patientAddress");
            return (Criteria) this;
        }

        public Criteria andPatientAddressLessThanOrEqualTo(String value) {
            addCriterion("patient_address <=", value, "patientAddress");
            return (Criteria) this;
        }

        public Criteria andPatientAddressLike(String value) {
            addCriterion("patient_address like", value, "patientAddress");
            return (Criteria) this;
        }
        
        // 定义挂号科室的搜索条件
        public Criteria andDeptNameLike(String value) {
            addCriterion("deptName like", value, "deptName");
            return (Criteria) this;
        }
        // 定义挂号医生的搜索条件
        public Criteria andDoctorNameLike(String value) {
            addCriterion("doctorName like", value, "doctorName");
            return (Criteria) this;
        }
        // 定义挂号类型的搜索条件
        public Criteria andRegisterNameLike(String value) {
            addCriterion("registerName like", value, "registerName");
            return (Criteria) this;
        }
        // 定义挂号员姓名的搜索条件
        public Criteria andRegisterOperatorNameLike(String value) {
            addCriterion("registerOperatorName like", value, "registerOperatorName");
            return (Criteria) this;
        }

        public Criteria andPatientAddressNotLike(String value) {
            addCriterion("patient_address not like", value, "patientAddress");
            return (Criteria) this;
        }

        public Criteria andPatientAddressIn(List<String> values) {
            addCriterion("patient_address in", values, "patientAddress");
            return (Criteria) this;
        }

        public Criteria andPatientAddressNotIn(List<String> values) {
            addCriterion("patient_address not in", values, "patientAddress");
            return (Criteria) this;
        }

        public Criteria andPatientAddressBetween(String value1, String value2) {
            addCriterion("patient_address between", value1, value2, "patientAddress");
            return (Criteria) this;
        }

        public Criteria andPatientAddressNotBetween(String value1, String value2) {
            addCriterion("patient_address not between", value1, value2, "patientAddress");
            return (Criteria) this;
        }

        public Criteria andRegisterDeptIsNull() {
            addCriterion("register_dept is null");
            return (Criteria) this;
        }

        public Criteria andRegisterDeptIsNotNull() {
            addCriterion("register_dept is not null");
            return (Criteria) this;
        }

        public Criteria andRegisterDeptEqualTo(Long value) {
            addCriterion("register_dept =", value, "registerDept");
            return (Criteria) this;
        }

        public Criteria andRegisterDeptNotEqualTo(Long value) {
            addCriterion("register_dept <>", value, "registerDept");
            return (Criteria) this;
        }

        public Criteria andRegisterDeptGreaterThan(Long value) {
            addCriterion("register_dept >", value, "registerDept");
            return (Criteria) this;
        }

        public Criteria andRegisterDeptGreaterThanOrEqualTo(Long value) {
            addCriterion("register_dept >=", value, "registerDept");
            return (Criteria) this;
        }

        public Criteria andRegisterDeptLessThan(Long value) {
            addCriterion("register_dept <", value, "registerDept");
            return (Criteria) this;
        }

        public Criteria andRegisterDeptLessThanOrEqualTo(Long value) {
            addCriterion("register_dept <=", value, "registerDept");
            return (Criteria) this;
        }

        public Criteria andRegisterDeptIn(List<Long> values) {
            addCriterion("register_dept in", values, "registerDept");
            return (Criteria) this;
        }

        public Criteria andRegisterDeptNotIn(List<Long> values) {
            addCriterion("register_dept not in", values, "registerDept");
            return (Criteria) this;
        }

        public Criteria andRegisterDeptBetween(Long value1, Long value2) {
            addCriterion("register_dept between", value1, value2, "registerDept");
            return (Criteria) this;
        }

        public Criteria andRegisterDeptNotBetween(Long value1, Long value2) {
            addCriterion("register_dept not between", value1, value2, "registerDept");
            return (Criteria) this;
        }

        public Criteria andRegisterDoctorIsNull() {
            addCriterion("register_doctor is null");
            return (Criteria) this;
        }

        public Criteria andRegisterDoctorIsNotNull() {
            addCriterion("register_doctor is not null");
            return (Criteria) this;
        }

        public Criteria andRegisterDoctorEqualTo(Long value) {
            addCriterion("register_doctor =", value, "registerDoctor");
            return (Criteria) this;
        }

        public Criteria andRegisterDoctorNotEqualTo(Long value) {
            addCriterion("register_doctor <>", value, "registerDoctor");
            return (Criteria) this;
        }

        public Criteria andRegisterDoctorGreaterThan(Long value) {
            addCriterion("register_doctor >", value, "registerDoctor");
            return (Criteria) this;
        }

        public Criteria andRegisterDoctorGreaterThanOrEqualTo(Long value) {
            addCriterion("register_doctor >=", value, "registerDoctor");
            return (Criteria) this;
        }

        public Criteria andRegisterDoctorLessThan(Long value) {
            addCriterion("register_doctor <", value, "registerDoctor");
            return (Criteria) this;
        }

        public Criteria andRegisterDoctorLessThanOrEqualTo(Long value) {
            addCriterion("register_doctor <=", value, "registerDoctor");
            return (Criteria) this;
        }

        public Criteria andRegisterDoctorIn(List<Long> values) {
            addCriterion("register_doctor in", values, "registerDoctor");
            return (Criteria) this;
        }

        public Criteria andRegisterDoctorNotIn(List<Long> values) {
            addCriterion("register_doctor not in", values, "registerDoctor");
            return (Criteria) this;
        }

        public Criteria andRegisterDoctorBetween(Long value1, Long value2) {
            addCriterion("register_doctor between", value1, value2, "registerDoctor");
            return (Criteria) this;
        }

        public Criteria andRegisterDoctorNotBetween(Long value1, Long value2) {
            addCriterion("register_doctor not between", value1, value2, "registerDoctor");
            return (Criteria) this;
        }

        public Criteria andRegisterTypeIsNull() {
            addCriterion("register_type is null");
            return (Criteria) this;
        }

        public Criteria andRegisterTypeIsNotNull() {
            addCriterion("register_type is not null");
            return (Criteria) this;
        }

        public Criteria andRegisterTypeEqualTo(Long value) {
            addCriterion("register_type =", value, "registerType");
            return (Criteria) this;
        }

        public Criteria andRegisterTypeNotEqualTo(Long value) {
            addCriterion("register_type <>", value, "registerType");
            return (Criteria) this;
        }

        public Criteria andRegisterTypeGreaterThan(Long value) {
            addCriterion("register_type >", value, "registerType");
            return (Criteria) this;
        }

        public Criteria andRegisterTypeGreaterThanOrEqualTo(Long value) {
            addCriterion("register_type >=", value, "registerType");
            return (Criteria) this;
        }

        public Criteria andRegisterTypeLessThan(Long value) {
            addCriterion("register_type <", value, "registerType");
            return (Criteria) this;
        }

        public Criteria andRegisterTypeLessThanOrEqualTo(Long value) {
            addCriterion("register_type <=", value, "registerType");
            return (Criteria) this;
        }

        public Criteria andRegisterTypeIn(List<Long> values) {
            addCriterion("register_type in", values, "registerType");
            return (Criteria) this;
        }

        public Criteria andRegisterTypeNotIn(List<Long> values) {
            addCriterion("register_type not in", values, "registerType");
            return (Criteria) this;
        }

        public Criteria andRegisterTypeBetween(Long value1, Long value2) {
            addCriterion("register_type between", value1, value2, "registerType");
            return (Criteria) this;
        }

        public Criteria andRegisterTypeNotBetween(Long value1, Long value2) {
            addCriterion("register_type not between", value1, value2, "registerType");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeIsNull() {
            addCriterion("register_time is null");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeIsNotNull() {
            addCriterion("register_time is not null");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeEqualTo(Date value) {
            addCriterion("register_time =", value, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeNotEqualTo(Date value) {
            addCriterion("register_time <>", value, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeGreaterThan(Date value) {
            addCriterion("register_time >", value, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("register_time >=", value, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeLessThan(Date value) {
            addCriterion("register_time <", value, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeLessThanOrEqualTo(Date value) {
            addCriterion("register_time <=", value, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeIn(List<Date> values) {
            addCriterion("register_time in", values, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeNotIn(List<Date> values) {
            addCriterion("register_time not in", values, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeBetween(Date value1, Date value2) {
            addCriterion("register_time between", value1, value2, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeNotBetween(Date value1, Date value2) {
            addCriterion("register_time not between", value1, value2, "registerTime");
            return (Criteria) this;
        }

        public Criteria andSeeDoctorTimeIsNull() {
            addCriterion("see_doctor_time is null");
            return (Criteria) this;
        }

        public Criteria andSeeDoctorTimeIsNotNull() {
            addCriterion("see_doctor_time is not null");
            return (Criteria) this;
        }

        public Criteria andSeeDoctorTimeEqualTo(Long value) {
            addCriterion("see_doctor_time =", value, "seeDoctorTime");
            return (Criteria) this;
        }

        public Criteria andSeeDoctorTimeNotEqualTo(Long value) {
            addCriterion("see_doctor_time <>", value, "seeDoctorTime");
            return (Criteria) this;
        }

        public Criteria andSeeDoctorTimeGreaterThan(Long value) {
            addCriterion("see_doctor_time >", value, "seeDoctorTime");
            return (Criteria) this;
        }

        public Criteria andSeeDoctorTimeGreaterThanOrEqualTo(Long value) {
            addCriterion("see_doctor_time >=", value, "seeDoctorTime");
            return (Criteria) this;
        }

        public Criteria andSeeDoctorTimeLessThan(Long value) {
            addCriterion("see_doctor_time <", value, "seeDoctorTime");
            return (Criteria) this;
        }

        public Criteria andSeeDoctorTimeLessThanOrEqualTo(Long value) {
            addCriterion("see_doctor_time <=", value, "seeDoctorTime");
            return (Criteria) this;
        }

        public Criteria andSeeDoctorTimeIn(List<Long> values) {
            addCriterion("see_doctor_time in", values, "seeDoctorTime");
            return (Criteria) this;
        }

        public Criteria andSeeDoctorTimeNotIn(List<Long> values) {
            addCriterion("see_doctor_time not in", values, "seeDoctorTime");
            return (Criteria) this;
        }

        public Criteria andSeeDoctorTimeBetween(Long value1, Long value2) {
            addCriterion("see_doctor_time between", value1, value2, "seeDoctorTime");
            return (Criteria) this;
        }

        public Criteria andSeeDoctorTimeNotBetween(Long value1, Long value2) {
            addCriterion("see_doctor_time not between", value1, value2, "seeDoctorTime");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("status is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("status is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Long value) {
            addCriterion("status =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Long value) {
            addCriterion("status <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Long value) {
            addCriterion("status >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Long value) {
            addCriterion("status >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Long value) {
            addCriterion("status <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Long value) {
            addCriterion("status <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Long> values) {
            addCriterion("status in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Long> values) {
            addCriterion("status not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Long value1, Long value2) {
            addCriterion("status between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Long value1, Long value2) {
            addCriterion("status not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andRegisterOperatorIsNull() {
            addCriterion("register_operator is null");
            return (Criteria) this;
        }

        public Criteria andRegisterOperatorIsNotNull() {
            addCriterion("register_operator is not null");
            return (Criteria) this;
        }

        public Criteria andRegisterOperatorEqualTo(Long value) {
            addCriterion("register_operator =", value, "registerOperator");
            return (Criteria) this;
        }

        public Criteria andRegisterOperatorNotEqualTo(Long value) {
            addCriterion("register_operator <>", value, "registerOperator");
            return (Criteria) this;
        }

        public Criteria andRegisterOperatorGreaterThan(Long value) {
            addCriterion("register_operator >", value, "registerOperator");
            return (Criteria) this;
        }

        public Criteria andRegisterOperatorGreaterThanOrEqualTo(Long value) {
            addCriterion("register_operator >=", value, "registerOperator");
            return (Criteria) this;
        }

        public Criteria andRegisterOperatorLessThan(Long value) {
            addCriterion("register_operator <", value, "registerOperator");
            return (Criteria) this;
        }

        public Criteria andRegisterOperatorLessThanOrEqualTo(Long value) {
            addCriterion("register_operator <=", value, "registerOperator");
            return (Criteria) this;
        }

        public Criteria andRegisterOperatorIn(List<Long> values) {
            addCriterion("register_operator in", values, "registerOperator");
            return (Criteria) this;
        }

        public Criteria andRegisterOperatorNotIn(List<Long> values) {
            addCriterion("register_operator not in", values, "registerOperator");
            return (Criteria) this;
        }

        public Criteria andRegisterOperatorBetween(Long value1, Long value2) {
            addCriterion("register_operator between", value1, value2, "registerOperator");
            return (Criteria) this;
        }

        public Criteria andRegisterOperatorNotBetween(Long value1, Long value2) {
            addCriterion("register_operator not between", value1, value2, "registerOperator");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}